home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / t_os / fapx / fapxdnld.plp < prev    next >
Text File  |  1991-10-18  |  4KB  |  159 lines

  1. /************************************************************************
  2. * データライブラリからの自動ダウンロード処理                 *
  3. *************************************************************************/
  4. %AUTOdwn1
  5.     {
  6.     line:=line+1;
  7.     linebuf:={};
  8.     case    (
  9.         file={memo1}||file={memo2}||file={memo3}||
  10.         file={memo4}||file={memo5}||file={memo6}||
  11.         file={memo7}||file={memo8}||file={memo9},
  12.         {Yes},
  13.         {case    (
  14.             @mlast>=@getchar(file,5,1)&&@mcheck==0,
  15.             {Yes},
  16.             {linebuf:=@memo(@getchar(file,5,1),line,1)},
  17.             {No},
  18.             {
  19.             SNDMSG({okasi_f.snd});
  20.             display(file|{が使えません\n});
  21.             linebuf:={};
  22.             }
  23.             )
  24.         },
  25.         {No},
  26.         {linebuf:=@read(file,line,1)}
  27.         );
  28.     case    (
  29.         @head(linebuf,{=}),
  30.         {forum},    /* フォーラムからのダウンロード */
  31.         {
  32.         DLIBDOWN(
  33.             @tail(linebuf,{forum=},{;}),
  34.             @tail(linebuf,{libno=},{;}),
  35.             @tail(linebuf,{datano=},{;}),
  36.             @tail(linebuf,{docfile=},{;}),
  37.             @tail(linebuf,{datafile=},{;})
  38.             );
  39.         AUTOdwn1;    /* 終わったら次の行を読む */
  40.         },
  41.         {profile},    /* プロフィール情報のダウンロード */
  42.         {
  43.         PROFDOWN(
  44.             @tail(linebuf,{profile=},{;})
  45.             );
  46.         AUTOdwn1;    /* 終わったら次の行を読む */
  47.         },
  48.         {},,        /* 空文字列なら終了 */
  49.         ,AUTOdwn1    /* それ以外なら次の行を読む */
  50.         );
  51.     };
  52.  
  53. %AUTOdown
  54.     {
  55.     [file]
  56.     case    (
  57.         @filechk(file)||file={memo1}||file={memo2}||file={memo3}||
  58.                 file={memo4}||file={memo5}||file={memo6}||
  59.                 file={memo7}||file={memo8}||file={memo9},
  60.         {Yes},
  61.         {
  62.         line:=0;
  63.         AUTOdwn1;
  64.         },
  65.         {No},
  66.         {
  67.         SNDMSG({okasi_f.snd});
  68.         display({\n}|file|{制御ファイルがありません\n});
  69.         }
  70.         );
  71.     };
  72.  
  73. /*    ダウンロード制御ファイル指定の有無の判定処理    */
  74. %AUTODNLD
  75.     {
  76.     display({自動ダウンロードを開始します\n});
  77.     footnote({自動ダウンロードをしています});
  78.     case    (
  79.         dnldcntl={},
  80.         {No},{AUTOdown(dnldcntl)},
  81.         {Yes},
  82.         );
  83.     };
  84.  
  85. %DLIBDOWN
  86.     {
  87.     [forum,libno,datano,docfile,datafile]
  88.     display(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします\n});
  89.     footnote(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします});
  90.     type    ({GO }|forum|{\n});
  91.     case    (
  92.         @FORUMTOP={OK},
  93.         {No},,
  94.         {Yes},{LIBDOWN(libno,datano,docfile,datafile)}
  95.         );
  96.     };
  97.  
  98. %LIBDOWN{
  99.     [libno,datano,docfile,datafile]
  100.     type({LIB }|libno|{\n});
  101.     wait    (
  102.         Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  103.         {4:ダウンロード  E:終了)\n>},
  104.         {
  105.         type({DOWN }|datano|{ PROT:BPL\n});
  106.         mkdir2(@body(docfile,,{\}));
  107.         receive(docfile);
  108.         WAITCHAR(Wtime2*5,{項目 (1:OK  2:NG  E:終了)\n:},{});
  109.         stoprec;
  110.         type({1\n});
  111.         WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{});
  112.         mkdir2(@body(datafile,,{\}));
  113.         type(datafile|{\n});
  114.         WAITCHAR(,{-ダウンロード終了-},{});
  115.         WAITCHAR(Wtime2,{E:終了)\n>},{});
  116.         },
  117.         {\n>},
  118.         );
  119.     };
  120.  
  121. %PROFDOWN
  122.     {
  123.     [uid]
  124.     %readall{
  125.         wait(Wtime2*3,{AbortOff({ホストがおもいよ~})},
  126.             {◆該当利用者はいません◆\n>},,
  127.             {プロフィールはありません-\n>},,
  128.             {◆入力データエラー◆\n>},,
  129.             {\n>},
  130.             {wait(2);case(@laststr(2),{>},,,readall)}
  131.             );
  132.         };
  133.  
  134.     var    UID    [90];
  135.     display(uid|{の}|{プロフィール情報をダウンロードします\n});
  136.     footnote(uid|{の}|{プロフィール情報をダウンロードします\n});
  137.     mkdir2(LOG2|{profile});
  138.     UID:=uid;
  139.     loop    ({
  140.         %id1 @head(UID,{,});
  141.         UID:=@body(UID,{,});
  142.         case    (@nochar(id1)==8,
  143.             {Yes},
  144.             {
  145.             dispoff({Yes});
  146.             command({del }|LOG2|{profile\}|id1|{.prf});
  147.             dispoff({No});
  148.             receive(LOG2|{profile\}|id1|{.prf});
  149.             type({PROF }|id1|{\n});
  150.             readall;
  151.             stoprec;
  152.             }
  153.             );
  154.         case(UID,{},{im({No})},,{im({Yes})});
  155.         });
  156.     };
  157.  
  158. AUTODNLD;
  159.